iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
1
自我挑戰組

今年我想陪著 30 天系列 第 1

今年我想陪著 30 天之 1

  • 分享至 

  • xImage
  •  

第一次參與it邦幫忙所舉辦的鐵人賽
對於自己這一次參與的期望,主要是希望自己能在活動中有所收獲及成長,並完完整整的跟完看完一些有興趣的系列文章。在接下來連續著發文三十天中,我將分享我所在鐵人賽中所見所聞,並持續思考如何調整並改善自己所發的文章。

鐵人開賽的第一天,看到的有人是打算以每天用自己想要精進的語言練習撰寫一題leetcode的方式,心有所感,所以在這 30 天,文章將會以此位鐵人所分享的題目為底(自己以 javascript 來解題);並學習各位鐵人們在文章中所分享的內容或跟著實作。

1480. Running Sum of 1d Array

Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]).
Return the running sum of nums.

  • Example 1:
    Input: nums = [1,2,3,4]
    Output: [1,3,6,10]
    Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4].

  • Example 2:
    Input: nums = [1,1,1,1,1]
    Output: [1,2,3,4,5]
    Explanation: Running sum is obtained as follows: [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1].

  • Example 3:
    Input: nums = [3,1,2,10,1]
    Output: [3,4,6,16,17]

有時看不懂題意時,不妨看看題目所提供的範例;或許反而會因為看懂了範例,而知道題目是在要求什麼

var runningSum = function(nums) {
    var result = [];
    nums.forEach(function(i, idx) {
        if(idx === 0) {
            result.push(i);
        }
        else {
            result.push(i + result[idx - 1]);
        }
    });

    return result;
}

正當在檢視文章猶豫著要不要發文時,突然想到此題目解法的過程與陣列中 reduce 處理的過程有點類似,都是與前一個值進行計算,所以又想到可以如下的處理方式。姑且不論解法是好或壞,起碼在解題的過程中已經依靠著自己生出了 2 種解法了 XD。

var runningSum = function(nums) {
    let result = []
    nums.reduce((acc, cur) => {
        result.push(acc + cur)
        return acc + cur
    }, 0)
    return result
}

下一篇
今年我想陪著 30 天之 2
系列文
今年我想陪著 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言